---
title: DeleteManager 删除管理器
icon: Trash2
relatedFile: app/src/core/stage/stageManager/concreteMethods/StageDeleteManager.tsx
---

这个服务主要负责管理舞台上各种元素的删除操作。它提供了一套统一的机制来处理不同类型实体（如文本节点、图片节点、连接点、区域等）的删除，并确保在删除实体时，其相关的关联（如边）也能被正确处理。

## 功能概述

*   **实体删除注册与分发**: 服务内部维护一个删除处理器映射，为每种可删除的实体类型注册一个专门的删除函数。当请求删除一个或多个实体时，服务会根据实体的类型自动查找并调用相应的处理器。
*   **关联关系处理**: 在删除实体（如节点）时，服务会智能地识别并删除所有与该实体相关的边（包括普通边和多目标无向边），以维护舞台数据的完整性。
*   **特效集成**: 在某些实体删除时，会触发视觉特效（如爆炸虚线效果），增强用户体验。
*   **区域（Section）删除**: 对于区域的删除，服务会先处理区域内部包含的所有子实体，然后删除区域本身，并调整其父级区域的子实体归属。

## API 方法

### `deleteEntities(deleteNodes: Entity[])`

批量删除舞台上的多个实体。该方法会遍历传入的实体列表，并为每个实体调用其对应的删除处理器。

### `deleteEdge(deleteEdge: Edge): boolean`

删除舞台上的一条普通边。在删除前会检查边的源节点和目标节点是否存在。

### `deleteMultiTargetUndirectedEdge(edge: MultiTargetUndirectedEdge): boolean`

删除舞台上的一条多目标无向边。
